#ifndef __EDID_GENERATOR_H__
#define __EDID_GENERATOR_H__

#include <stdint.h>

#ifdef __cplusplus
    extern "C" {
#endif

#define ID_MANUFACTURER_NAME_LEN    (2)

typedef enum tagEEdidGenVideoInterfaceType
{
    enEdidGenVideoInterface_DigitalItNotDefine = 0,
    enEdidGenVideoInterface_DVI,
    enEdidGenVideoInterface_HDMI_A,
    enEdidGenVideoInterface_HDMI_B,
    enEdidGenVideoInterface_MDDI,
    enEdidGenVideoInterface_DP,
    enEdidGenVideoInterface_Reserve,
}EEdidGenVideoInterfaceType;

typedef enum tagEEdidGenColorSpaceType
{
    enEdidGenColorSpace_RGB444 = 0,
    enEdidGenColorSpace_RGB444_YcbCr444,
    enEdidGenColorSpace_RGB444_YcbCr422,
    enEdidGenColorSpace_RGB444_YcbCr444_YcbCr422,
}EEdidGenColorSpaceType;

typedef enum tagEEdidGenColorDepthType
{
    enEdidGenColorDepth_Undefine = 0,
    enEdidGenColorDepth_6bit,
    enEdidGenColorDepth_8bit,
    enEdidGenColorDepth_10bit,
    enEdidGenColorDepth_12bit,
    enEdidGenColorDepth_14bit,
    enEdidGenColorDepth_16bit,
    enEdidGenColorDepth_Reserve,
}EEdidGenColorDepthType;

typedef struct tagSEdidGeneratorType
{
    EEdidGenVideoInterfaceType      videoInterface;
    EEdidGenColorSpaceType          colorSpace;
    EEdidGenColorDepthType          colorDepth;
    uint8_t                         idManufacturerName;
    uint16_t                        idProductCode;
    uint32_t                        idSerialNumber;
}SEdidGeneratorType;

#ifdef __cplusplus
    }
#endif

#endif
